// var i;
// exports.ListviewCom = void 0;
// var AL_GAME_HUA_listview = require("./AL_GAME_HUA_listview");
// var c = cc._decorator;
// var l = c.ccclass;
// var u = c.property;
// var p = c.requireComponent;
// var f = (function (e) {
//     function t() {
//         var t = (null !== e && e.apply(this, arguments)) || this;
//         t.scrollView = null;
//         t.prefab_item_temp = null;
//         t.column = 1;
//         t.row = 1;
//         t.gap_x = 0;
//         t.gap_y = 0;
//         t.padding_top = 0;
//         t.padding_bottom = 0;
//         t.padding_left = 0;
//         t.padding_right = 0;
//         t._listView = null;
//         return t;
//     }
//     __extends(t, e);
//     t.prototype.init = function () {
//         if (!this._listView) {
//             this.scrollView.node.getComponent(cc.Widget).updateAlignment();
//             this._listView = new AL_GAME_HUA_listview.ListView({
//                 scrollview: this.scrollView,
//                 mask: this.scrollView.node.getChildByName("view").getComponent(cc.Mask),
//                 content: this.scrollView.content,
//                 item_tpl: this.prefab_item_temp,
//                 column: this.column,
//                 row: this.row,
//                 gap_y: this.gap_y,
//                 gap_x: this.gap_x,
//                 padding_top: this.padding_top,
//                 padding_left: this.padding_left,
//                 padding_bottom: this.padding_bottom,
//                 padding_right: this.padding_right,
//                 item_anchorX: this.prefab_item_temp.data.anchorX,
//                 item_anchorY: this.prefab_item_temp.data.anchorY,
//                 direction: this.scrollView.horizontal
//                     ? AL_GAME_HUA_listview.ListViewDir.Horizontal
//                     : AL_GAME_HUA_listview.ListViewDir.Vertical
//             });
//         }
//     };
//     t.prototype.shezhi_shuju_duixiang = function (e) {
//         this._listView.set_data(e);
//     };
//     t.prototype.yichu_zhiding_shuju = function (e) {
//         this._listView.yichu_shuju(e);
//     };
//     t.prototype.yichu_suoyou_shuju = function () {
//         this._listView.qingkong_item_list();
//     };
//     t.prototype.onDestroy = function () {
//         if (this._listView) {
//             this._listView.destroy();
//         }
//     };
//     t.prototype.huoqu_list_view = function () {
//         return this._listView;
//     };
//     t.prototype.update = function () {
//         if (this._listView) {
//             this._listView.onUpdate();
//         }
//     };
//     __decorate([u(cc.ScrollView)], t.prototype, "scrollView", void 0);
//     __decorate([u(cc.Prefab)], t.prototype, "prefab_item_temp", void 0);
//     __decorate(
//         [
//             u({
//                 tooltip: "垂直移动时的列数"
//             })
//         ],
//         t.prototype,
//         "column",
//         void 0
//     );
//     __decorate(
//         [
//             u({
//                 tooltip: "水平移动时展示的行数"
//             })
//         ],
//         t.prototype,
//         "row",
//         void 0
//     );
//     __decorate(
//         [
//             u({
//                 tooltip: "列距"
//             })
//         ],
//         t.prototype,
//         "gap_x",
//         void 0
//     );
//     __decorate(
//         [
//             u({
//                 tooltip: "行距"
//             })
//         ],
//         t.prototype,
//         "gap_y",
//         void 0
//     );
//     __decorate(
//         [
//             u({
//                 tooltip: "顶边距"
//             })
//         ],
//         t.prototype,
//         "padding_top",
//         void 0
//     );
//     __decorate(
//         [
//             u({
//                 tooltip: "底边距"
//             })
//         ],
//         t.prototype,
//         "padding_bottom",
//         void 0
//     );
//     __decorate(
//         [
//             u({
//                 tooltip: "左边距"
//             })
//         ],
//         t.prototype,
//         "padding_left",
//         void 0
//     );
//     __decorate(
//         [
//             u({
//                 tooltip: "右边距"
//             })
//         ],
//         t.prototype,
//         "padding_right",
//         void 0
//     );
//     return __decorate([l, p(cc.ScrollView)], t);
// })(cc.Component);
// exports.ListviewCom = f;


// 定义ListviewCom类
exports.ListviewCom = void 0;
const ListView = require("./AL_GAME_HUA_listview").ListView;
const ccclass = cc._decorator.ccclass;
const property = cc._decorator.property;
const requireComponent = cc._decorator.requireComponent;

/**
 * Listview组件，用于创建列表视图。
 */
@ccclass
@requireComponent(cc.ScrollView)
class ListviewCom extends cc.Component {
    // ScrollView UI组件的引用
    @property(cc.ScrollView)
    scrollView = null;

    // item模板的Prefab
    @property(cc.Prefab)
    prefab_item_temp = null;

    // 垂直移动时的列数
    @property({ tooltip: "垂直移动时的列数" })
    column = 1; 

    // 水平移动时展示的行数
    @property({ tooltip: "水平移动时展示的行数" })
    row = 1;

    // 列距
    @property({ tooltip: "列距" })
    gap_x = 0;

    // 行距
    @property({ tooltip: "行距" })
    gap_y = 0;

    // 顶边距
    @property({ tooltip: "顶边距" })
    padding_top = 0;

    // 底边距
    @property({ tooltip: "底边距" })
    padding_bottom = 0;

    // 左边距
    @property({ tooltip: "左边距" })
    padding_left = 0;

    // 右边距
    @property({ tooltip: "右边距" })
    padding_right = 0;

    // 私有变量，用于存储ListView实例
    _listView = null;

    /**
     * 初始化列表视图
     */
    init() {
        if (!this._listView) {
            this.scrollView.node.getComponent(cc.Widget).updateAlignment();
            this._listView = new ListView({
                scrollview: this.scrollView,
                mask: this.scrollView.node.getChildByName("view").getComponent(cc.Mask),
                content: this.scrollView.content,
                item_tpl: this.prefab_item_temp,
                column: this.column,
                row: this.row,
                gap_y: this.gap_y,
                gap_x: this.gap_x,
                padding_top: this.padding_top,
                padding_left: this.padding_left,
                padding_bottom: this.padding_bottom,
                padding_right: this.padding_right,
                item_anchorX: this.prefab_item_temp.data.anchorX,
                item_anchorY: this.prefab_item_temp.data.anchorY,
                direction: this.scrollView.horizontal
                    ? ListView.ListViewDir.Horizontal
                    : ListView.ListViewDir.Vertical
            });
        }
    }

    /**
     * 设置列表数据
     * @param {Array} data - 列表数据
     */
    shezhi_shuju_duixiang(data) {
        this._listView.set_data(data);
    }

    /**
     * 移除指定数据
     * @param {Object} data - 要移除的数据
     */
    yichu_zhiding_shuju(data) {
        this._listView.yichu_shuju(data);
    }

    /**
     * 移除所有数据
     */
    yichu_suoyou_shuju() {
        this._listView.qingkong_item_list();
    }

    /**
     * 生命周期方法，销毁时调用
     */
    onDestroy() {
        if (this._listView) {
            this._listView.destroy();
        }
    }

    /**
     * 获取_listView实例
     * @returns {_listView}
     */
    huoqu_list_view() {
        return this._listView;
    }

    /**
     * 更新列表视图
     */
    update() {
        if (this._listView) {
            this._listView.onUpdate();
        }
    }
}

// 导出ListviewCom类
exports.ListviewCom = ListviewCom;